#pragma once
#include "UltimateSubsystem.h"
#include "UltimateSubsystemRegistry.h"
#define INPUT_POINTER_REL_X "pointer_rel_x"
#define INPUT_POINTER_REL_Y "pointer_rel_y"
#define INPUT_POINTER_X "pointer_x"
#define INPUT_POINTER_Y "pointer_y"

class UltimateInputSubsystem: public UltimateSubsystem
{
public:
	virtual Ogre::String  getSubsystemName()
	{
		return INPUT_SUBSYSTEM;
	}

	struct UltimateInputStruct
	{
		std::map<std::string,int> inputMap;
		std::set<int> pressedButtons;
	};

	virtual void clearInput()=0;
	virtual UltimateInputStruct * handleInput()=0;

	virtual ~UltimateInputSubsystem(void){};





};